﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace DwoDimensionArrays
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("введите количество строк");
            int rows = Int32.Parse(Console.ReadLine());
            Console.WriteLine("введите количество столбцов");
            int columns = Int32.Parse(Console.ReadLine());
            Console.Clear();
            int[,] testArray = CreateNewRandomTwoDimensionalArray(rows, columns, 1, 20);
            Console.WriteLine("Массив случайных чисел");
            PrintTwoDimensionalArray(testArray);

            //int counterEven = 0;
            //int counterOdd = 0;
            //for(int i=0;i<rows;i++)
            //{
            //    for (int j=0;j<columns;j++)
            //    {
            //        if (testArray[i, j] % 2 == 0)
            //            counterEven++;
            //        else
            //            counterOdd++;
            //    }
            //}
            //Console.WriteLine();
            //Console.WriteLine("{0} чётных чисел", counterEven);
            //Console.WriteLine("{0} нечётных чисел", counterOdd);

            //int maxJ=Int32.MinValue;
            //for (int j = 0; j < columns; j++)
            //{
            //    int minJ = Int32.MaxValue;
            //    for (int i = 0; i < rows; i++)
            //    {
            //        if (testArray[i, j] < minJ)
            //            minJ = testArray[i, j];
            //    }
            //    Console.WriteLine("наименьший из элементов столбца {0}", minJ);
            //    if (minJ > maxJ)
            //    maxJ = minJ;              
            //}
            //Console.WriteLine("наибольший из наименьших {0}", maxJ);
            //Console.ReadKey();
            int j = 0;
            int i = 0;
            for (i = 0; i < rows; i++)
            {
                int sumOfRowElements = 0;
                for (j = 0; j < columns; j++)
                {
                    sumOfRowElements += testArray[i, j];
                }
                Console.WriteLine("сумма элементов {0} строки: {1}", i + 1, sumOfRowElements);
            }

            int sumOfColunmElements;
            for (j=0;j<columns;j++)
            {
                sumOfColunmElements = 0;
                for (i=0;i<rows;i++)
                sumOfColunmElements += testArray[i, j];
                Console.WriteLine("сумма элементов {0} столбца равна {1}", j + 1, sumOfColunmElements);
            }
        }

        static int[,] CreateNewRandomTwoDimensionalArray(int rowCount, int columnCount, int randomMinValue, int randomMaxValue)
        {
            int[,] newArray = new int[rowCount, columnCount];
            Random rnd = new Random();

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    newArray[i, j] = rnd.Next(randomMinValue, randomMaxValue + 1);
                }
            }
            return newArray;
        }

        static void PrintTwoDimensionalArray(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0}\t", arrayForPrint[i, j]);
                }
                Console.WriteLine();
            }
        }
    }
}

